AnimatePalette
AnimatePalette Change many palette colors to new, specific, RGB values
#include <Palettes.h> Palette Manager
void AnimatePalette( destWindow, srcTab, srcIndex, destEntry,
destLength );
WindowPtr destWindow ; pointer to the window whose palette is being changed
CTabHandle srcCTab ; Handle to a color table
short srcIndex ; start entry (min. of 0) to start copying from
short destEntry ; first palette color being changed
short destLength ; total number of entries to be changed
AnimatePalette applies numerous source RGB values to destination entries.

Notes: Use this routine to substitute an entire range of colors in a particular palette
with new RGB values from the device's color table. Other than that, it works
the same as AnimateEntry except that, if the color table doesn't have enough
colors to satisfy the whole range of requested changes, as many colors as
possible are changed and the rest are left as they were.
Don't try to use this procedure if you've used SetPalette to block updates to
this particular window with cUpdates = FALSE. You'll wind up with a situation
where redrawing the window (for instance, as the result of a color update
event) will remove all the animating colors that don't belong to the window.
That happens because ActivatePalette is reserving device indexes for
animation when the window is already using them.